package com.common.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import java.util.Set;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/** 系统用户表 @TableName sys_user */
@TableName(value = "sys_user")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysUser implements Serializable {
  /** 用户ID（代码处使用雪花算法生成） */
  @TableId(value = "id", type = IdType.ASSIGN_ID)
  private Long id;

  /** 登录用户名（唯一） */
  @TableField(value = "user_name")
  private String userName;

  /** 加密后的密码（如MD5加密） */
  @TableField(value = "user_password")
  private String userPassword;

  /** 用户昵称 */
  @TableField(value = "user_nick_name")
  private String userNickName;

  /** 邮箱 */
  @TableField(value = "email")
  private String email;

  /** 手机号 */
  @TableField(value = "phone")
  private String phone;

  /** 状态（0-禁用，1-正常） */
  @TableField(value = "status")
  private Integer status;

  /** 头像URL */
  @TableField(value = "avatar")
  private String avatar;

  /** 创建时间 */
  @TableField(value = "create_time")
  private Date createTime;

  /** 更新时间 */
  @TableField(value = "update_time")
  private Date updateTime;

  /** 逻辑删除（0-未删除，1-已删除） */
  @TableField(value = "is_deleted")
  private Integer isDeleted;

  /** 用户的角色 */
  @TableField(exist = false)
  private Set<String> roleSet;

  /** 用户的相关权限 */
  @TableField(exist = false)
  private Set<String> permissionSet;

  @TableField(exist = false)
  private static final long serialVersionUID = 1L;
}
